package com.xbongbong.saas.domain.entity.ext;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.enums.DelEnum;
import com.xbongbong.saas.domain.entity.InventoryProductEntity;
import com.xbongbong.saas.domain.entity.ProductBaseInfoEntity;
import com.xbongbong.saas.domain.entity.ProductStockInfoEntity;
import lombok.Getter;
import lombok.Setter;

/**
 * 入库单产品实体的拓展类
 *
 * @author chaoxiong.lei
 * @date 2019/3/4 21:50
 */
@Getter
@Setter
public class FormatRelativeProductEntityExt extends InventoryProductEntity {

    private static final long serialVersionUID = 9207578599133678672L;

    /**
     * 单据产品id
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 关联单据id
     */
    private Long refId;
    /**
     * 产品id
     */
    private Long productId;
    /**
     * 表单id
     */
    private Long formId;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 产品编号
     */
    private String productNo;
    /**
     * 产品规格
     */
    private String productSpecification;
    /**
     * 产品数量
     */
    private Double productNum;
    /**
     * 产品单位
     */
    private String productUnit;
    /**
     * 产品价格
     */
    private Double productPrice;
    /**
     * 格式化后的产品价格，字符串
     */
    private String productPriceStr;
    /**
     * 添加时间
     */
    private Long addTime;
    /**
     * 更新时间
     */
    private Long updateTime;
    /**
     * 删除标志
     */
    private Integer del;
    /**
     * 仓库id
     */
    private Long warehouseId;
    /**
     * 仓库对象
     */
    private JSONObject warehouseObj;

    /**
     * 产品分类id
     */
    private Long categoryId;
    /**
     * 产品图片地址
     */
    private String imageUrl;
    /**
     * 售价
     */
    private Double salesProductPrice;
    /**
     * 产品条码
     */
    private String barcode;

    private String priceStr = "";
    private String productNumStr = "";
    private JSONArray specificationArray = new JSONArray();

    /**
     * 产品库存信息
     */
    private ProductBaseInfoEntity productBaseInfoEntity;
    /**
     * 产品库存信息
     */
    private ProductStockInfoEntity productStockInfoEntity;
    /**
     * 产品展示排序
     */
    private Integer sort;

    /**
     * 产品库存
     */
    private Double stock;
    /**
     * 产品成本
     */
    private Double cost;
    /**
     * 产品成本，格式化后的字符串
     */
    private String costStr;
    /**
     * 产品小计
     */
    private Double subTotal;
    /**
     * 金额格式化后的产品小计
     */
    private String subTotalStr;
    /**
     * 产品备注
     * 1.这个产品备注与库存信息中的产品备注不同
     * 2.这个备注是产品本身的备注
     * 3.格式化产品的时候，优先获取这个备注，如果没有，再获取productStockInfoEntiy中的备注
     */
    private String memo;

    /**
     * 状态 mvn的项目里有，不知道要不要用，先加上
     */
    private String status;
    /**
     * 缺货 mvn的项目里有，不知道要不要用，先加上
     */
    private Double lackNum;

    private Double saleProductPrice;

    private Double saleDiscount;

    private Double saleSubtotal;


    public FormatRelativeProductEntityExt() {
        this.corpid = "";
        this.refId = 0L;
        this.productId = 0L;
        this.productName = "";
        this.productNo = "";
        this.productSpecification = "";
        this.productNum = 0d;
        this.productUnit = "";
        this.productPrice = 0d;
        this.del = DelEnum.NORMAL.getDel();
    }

}
